Skip to content

fix: move request body models to module level to fix 422 on POST#83

Merged
blaspat merged 2 commits into
mainfrom
fix/inline-pydantic-body-models
Jun 25, 2026
Merged

fix: move request body models to module level to fix 422 on POST#83
blaspat merged 2 commits into
mainfrom
fix/inline-pydantic-body-models

Conversation

@blaspat

@blaspat blaspat commented Jun 25, 2026

Copy link
Copy Markdown
Owner

With , inline BaseModel classes
defined inside create_app() cause FastAPI/Pydantic to treat body params as query params, returning a silent 422 validation error on every exec/read/write POST.

Moving _ExecRequest, _ReadRequest, and _WriteRequest to module level resolves the annotation resolution issue.

blaspat added 2 commits June 25, 2026 11:45
With , inline BaseModel classes
defined inside create_app() cause FastAPI/Pydantic to treat body
params as query params, returning a silent 422 validation error
on every exec/read/write POST.

Moving _ExecRequest, _ReadRequest, and _WriteRequest to module
level resolves the annotation resolution issue.

Signed-off-by: Blasius Patrick <blasius.patrick@gmail.com>
Go client's ReadResultPayload and WritePayload use content_b64
(base64-encoded) for file content, but the Python plugin was using
raw content with the wrong field name:

- tools.py _node_read_impl: read 'content' instead of 'content_b64'
  from Go's read_result response. Added base64 decode.
- server.py nodes_write: sent 'content' instead of 'content_b64'
  to the Go client. Now base64-encodes before sending.

Fixes node_read returning empty content and node_write returning
bytes_written=0 on macOS (and any platform).

Signed-off-by: Blasius Patrick <blasius.patrick@gmail.com>
@blaspat blaspat merged commit 66cff38 into main Jun 25, 2026
2 checks passed
@blaspat blaspat deleted the fix/inline-pydantic-body-models branch June 25, 2026 05:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant